package com.mjf.scala.chapter07

/**
 * 不可变集合List
 */
object Scala04_TestList {
  def main(args: Array[String]): Unit = {

    // 创建List集合，因为List是抽象的，只能通过apply方式创建
    val list: List[Int] = List(1, 2, 3, 4)

    // 向集合中添加元素
//    val newList: List[Int] = list.+:(10)
//    val newList: List[Int] = list.:+(10)
//    println(newList)  // List(10, 1, 2, 3, 4)
//    println(list)   // List(1, 2, 3, 4)

    // 在Scala语言中，List()相当于Nil，表示空集合
    val newList: List[Int] = list.::(50)
    val nil: List[Int] = Nil.::(40)
    val newNil: List[Int] = 10 :: 20 :: 30 :: 40 :: Nil
    println(newList)  // List(50, 1, 2, 3, 4)
    println(list)   //List(1, 2, 3, 4)
    println(nil)    // List(40)
    println(newNil)    // List(10, 20, 30, 40)

    // 扁平化    将整体拆分为个体的过程
    val list2: List[Int] = List(1, 2, 3, 4)
    val list3: List[Int] = List(5, 6)

    // 向集合中添加元素
    val l: List[Any] = list2 :: list3
    println(l)  // List(List(1, 2, 3, 4), 5, 6)

    val l2: List[Int] = list2 ::: list3   // 扁平化处理
    println(l2) // List(1, 2, 3, 4, 5, 6)

  }
}
